1. Field of the Invention
The present invention relates, in general, to computer animation, and, more particularly, to systems and methods for allowing efficient production of computer generated (CG) or computer-animated images by accurately determining similarities and differences between two animation models to enable transfer of attributes from one to another model.
2. Relevant Background
Computer animation has become a standard component in the digital production process for animated works such as animated films, television animated shows, video games, and works that combine live action with animation. The rapid growth in this type of animation has been made possible by the significant advances in computer graphics software and hardware that is utilized by animators to create CG images. Producing computer animation generally involves modeling, rigging, animation, and rendering. First, the characters, elements, and environments used in the computer animations are modeled. Second, the modeled virtual actors and scene elements can be attached to the motion skeletons that are used to animate them by techniques called rigging. Third, computer animation techniques are performed ranging from key framing animation where start and end positions are specified for all objects in a sequence to motion capture where all positions are fed to the objects directly from live actors whose motions are being digitized. Fourth, computer rendering is performed to visually represent the animated models with the aid of a simulated camera.
A model of a complex object or character may require hundreds or thousands of polygons to provide a desired level of detail in 3D space. In many applications, polygonal meshes such as quadrilateral meshes are used to provide these models or representations of 3D objects or characters. During animation processes, attributes are assigned to the models, and the attributes such as shading, texturing, and other animation or rendering information may be assigned to the model based on an area or polygon-basis or associated with each vertex. To improve efficiency of the animation process, a model of an object may be simultaneously used by a number of departments to create a final model for use in rendering of a CG image or an animated scene. For example, the original model may be used by a shading department and a layout department concurrently while the model may also be undergoing rigging to allow the model to be moved or animated. As a result, a number of models may be generated that each have differing attributes.
It is often desirable to later transfer attributes from one model to another model such as transferring shading attributes for one model to another model that has been rigged to a skeleton for motion. Unfortunately, attribute transfer algorithms are typically only effective when the two models have similar shape or topological connectivity (e.g., there are two basic approaches to attribute transfer, with one being based on the geometric shape of an object and the other being based on the topological connectivity). Additionally, each of the departments or animators working on an original model may have introduced dissimilarities that cause the attribute transfer algorithm to fail or terminate without completing the transfer. Often, the transfer module will simply report back to the operator that the two models are not identical or the same without providing any indication of where the difference was found. An animator may look at the two models and not be able to visualize the difference because the model may have hundreds or thousands of mesh faces or areas with just one difference resulting in failure to transfer the attributes or rendering information. As a result, the animator may be forced to recreate a model or to perform numerous manual steps that result in an animation project becoming very tedious or labor intensive and expensive. The need for identifying similar models can be seen in many animation projects where many similar characters or objects are used in the same scene and it is desirable to transfer attributes rapidly to the numerous copies, which may be in various positions but otherwise similar. The same object may also be modeled and used in numerous scenes of an animated work, and it is desirable to transfer attributes among models used in these varying scenes even if one model has been worked on by numerous animation personnel or departments.
Hence, there is an ongoing need for computer-based methods and systems for determining whether two animation models that have been generated and stored in memory are similar enough to enable attribute transfer to be successfully completed. Further, it would be desirable for the computer-based methods and systems to be configured to output or report areas of any identified differences or dissimilarities when two copies of models do not match.